// 定义全局变量用于保存搜索框的值
let searchInputValue = "";

$(document).ready(function () {
    // 初始加载第一页数据
    getAllFiles(1);
});

// 定义分页大小
const pageSize = 10;

// 获取文件列表
function getAllFiles(page) {
    // 发送请求获取文件列表
    $.ajax({
        url: '/getFiles',
        type: 'GET',
        data: { page: page,
            pageSize: pageSize,
            search: searchInputValue},
        success: function (response) {
            const fileList = response.fileList;
            const totalPage = response.totalPage;

            // 渲染文件列表
            renderFileList(fileList,page);
            // 渲染分页器
            renderPagination(totalPage,page);
        },
        error: function (error) {
            console.log(error);
        }
    });
}

// 渲染文件列表
function renderFileList(fileList,currentPage) {
    // 清空文件列表
    $("#file-list-body").empty();

    // 循环渲染当前页的文件列表
    for (let i = 0; i < fileList.length; i++) {
        const file = fileList[i];

        const tr = $("<tr>").appendTo("#file-list-body");

        $("<td>").text(file.fileName).appendTo(tr);
        $("<td>").text(file.fileSize).appendTo(tr);
        $("<td>").text(file.createTime).appendTo(tr);

        const td = $("<td>").appendTo(tr);
        const btnGroup = $("<div>").addClass("btn-group").appendTo(td);

        $("<a>").text("下载").attr("href", file.url)
            .addClass("btn")
            .appendTo(btnGroup);

        $("<a>").text("删除")
            .addClass("btn btn-delete")
            .click(function () {
                // 发送请求删除文件
                $.ajax({
                    url: '/deleteFile',
                    type: 'GET',
                    data: { id: file.id },
                    dataType: 'text',
                    success: function () {
                        // 重新加载当前页数据
                        getAllFiles(currentPage);
                    },
                    error: function (error) {
                        console.log(error);
                    }
                });
            })
            .appendTo(btnGroup);

        $("<a>").text("重命名")
            .addClass("btn btn-rename")
            .click(function () {
                // 弹出输入框
                let fileName = prompt('请输入新文件名', '');
                // 发送请求重命名
                $.ajax({
                    url: '/renameFile',
                    type: 'GET',
                    data: { id: file.id, rename: fileName },
                    dataType: 'text',
                    success: function () {
                        // 重新加载当前页数据
                        getAllFiles(currentPage);
                    },
                    error: function (error) {
                        console.log(error);
                    }
                });
            }).appendTo(btnGroup);
    }
}

// 渲染分页器
function renderPagination(totalPage,currentPage) {
    // 清空分页器
    $(".pagination").empty();

    // 添加上一页按钮
    $("<li>").addClass("page-item")
        .addClass(currentPage === 1 ? "disabled" : "")
        .append($("<a>").addClass("page-link").text("上一页"))
        .click(function () {
            if (currentPage > 1) {
                getAllFiles(currentPage - 1);
            }
        })
        .appendTo(".pagination");

    // 添加页面数字按钮
    for (let i = 1; i <= totalPage; i++) {
        $("<li>").addClass("page-item")
            .addClass(currentPage === i ? "active" : "")
            .append($("<a>").addClass("page-link").text(i))
            .click(function () {
                getAllFiles(i);
            })
            .appendTo(".pagination");
    }

    // 添加下一页按钮
    $("<li>").addClass("page-item")
        .addClass(currentPage === totalPage ? "disabled" : "")
        .append($("<a>").addClass("page-link").text("下一页"))
        .click(function () {
            if (currentPage < totalPage) {
                getAllFiles(currentPage + 1);
            }
        })
        .appendTo(".pagination");
}

// 搜索文件
function searchFiles() {
    // 获取搜索框内容
    searchInputValue = $("#search-input").val();

    // 重新加载当前页数据
    getAllFiles(1);
}